﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using vensoft.BussinesLogic;
using vensoft.Entities;

namespace vensoft.Win32
{
    public partial class frmGestionarAlmacen : Form
    {
        IAlmacenBL almacenBL;
        IDetalleAlmacenBL detalleBL;

        public frmGestionarAlmacen()
        {
            InitializeComponent();
        }

        public Int32 EstadoBotones { get; set; }

        private void txtBuscarAlmacen_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                almacenBL = new AlmacenBL();
                almacenBindingSource.DataSource = almacenBL.GetFromCategoriaByUbic(txtBuscarAlmacen.Text);
            }
        }

        public Almacen CurrentAlmacen
        {
            get { return almacenBindingSource.Current as Almacen; }
            set
            { almacenBindingSource.DataSource = value; }
        }

        public Producto CurrentProducto { get; set; }

        public Int32 Cod_Producto { get; set; }

        private void frmGestionarAlmacen_Load(object sender, EventArgs e)        
        {            
            almacenBL = new AlmacenBL();
            almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacen();
            if (EstadoBotones == 0)
            {
                this.ControlBox = false;
                btnGuardar.Visible = true;
                btnNuevo.Visible = false;
                btnEditar.Visible = false;
                btnEliminar.Visible = false;
                btnCancelar.Visible = false;
            }
            else
            {
                btnGuardar.Visible = false;
                btnNuevo.Visible = true;
                btnEditar.Visible = true;
                btnEliminar.Visible = true;
                btnCancelar.Visible = true;
            }
        }

        private void btnActualizarDatos_Click(object sender, EventArgs e)
        {
            almacenBL = new AlmacenBL();
            almacenBindingSource.DataSource = almacenBL.GetAllFromAlmacen();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            frmAEAlmacen alm = new frmAEAlmacen();
            alm.Nuevo();
            alm.ShowDialog();
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            frmAEAlmacen alm = new frmAEAlmacen();
            alm.CurrentAlm = almacenBindingSource.Current as Almacen;
            alm.Editar();
            alm.ShowDialog();
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Estas seguro que deseas eliminar?", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Almacen curentAlm = almacenBindingSource.Current as Almacen;
                almacenBL.EliminarAlmacen(curentAlm);
                almacenBindingSource.RemoveCurrent();
                MessageBox.Show("El Almacén ha sido puesto como inactivo.");
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            detalleBL = new DetalleAlmacenBL();
            detalleBL.RegistrarNuevoProductoEnAlmacen(CurrentProducto, CurrentAlmacen, Cod_Producto);
            MessageBox.Show("Producto Registrado");
            Close();
        }
    }
}
